﻿#ifndef ADDPLATFORM_H
#define ADDPLATFORM_H

#include <QWidget>
#include <QMap>
#include <QVector>
#include <QMap>
#include <QFile>
#include <QStringList>
#include <chrono>
#include <thread>
#include <QDir>
#include "AddType.h"
#include "parsexmlins.h"

namespace Ui {
class AddPlatform;
}

class AddPlatform : public QWidget
{
    Q_OBJECT

public:
    explicit AddPlatform(QWidget *parent = nullptr);
    ~AddPlatform();
public:
    void fillJsonsToPlainText();
signals:
    void sendAddSignal(AddEv *addev);//发送添加事务信号
    void sendModSignal(AddEv *addev, map<int, map<QString, QStringList>> &Data_Map);//发送修改事务信号
    void sendRemoveSignal(AddEv *addev, map<int, map<QString, QStringList>> &Data_Map);//发送移除事务信号
    void sendParsefinished();//发送解析Json文件完成信号
private:
    void start();//启动线程池里面的任务包括添加、修改、删除
    void setOperateType(const QString &operatename);//设置操作类型如添加、修改、删除
    void selectSignal();//选择发送哪种类型信号
private:
    void Init();//初始化
private slots:
    void on_okBtn_clicked();
private:
    QJsonParseError error;
    QString content;//一个事务json解析出来的内容
    QJsonDocument doc;
    map<int, map<QString, QStringList>> Data_Map;//存储page ---> <_name, templates>
    map<QString, QStringList> m_Map;
    int page;//具体哪个模版
    vector<QString> order;//存储添加的顺序
    map<QString, int> TypetoInt_Map;//type(string)--->int
    vector<QString> Jsons;//存储所有事务的Json
    ParsexmlIns *P_ins;
    std::mutex mtx;
    //
    QString spccontent;//jc

private:
    Ui::AddPlatform *ui;
};

#endif // ADDPLATFORM_H
